﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ORM.Business.Feedbacks;
using ORM.Business.Models;
using ORM.Business.Models.Entities;

namespace ORM.Business.Interfaces
{
    public interface IAnswerRepository
    {
        AnswerListFeedback GetAllAnswers(int currentUserId, int questionId, PageInfo pageInfo);
        AnswerListFeedback GetHighScoreAnswers(int currentUserId, int questionId, PageInfo pageInfo);
        AnswerListFeedback GetAcceptedAnswer(int currentUserId, int questionId, PageInfo pageInfo);
        Feedback<Answer> InsertAnswer(Answer a);
        Feedback<Answer> VoteAnswer(int answerId, int userId);
        Feedback<Answer> MarkAnswerAsAccepted(int answerId);
        Feedback<Answer> DeleteAnAnswer(int answerId);
        Feedback<IList<Answer>> GetAllUnapprovedAnswers();
        Feedback<IList<Answer>> GetAllApprovedAnswers();
        Feedback ApproveAnswer(int id);
        Feedback DisapproveAnswer(int id);
        Feedback UnapproveAnswer(int id);

    }
}